home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1995 April / macformat-023.iso / Shareware City / Sound / OutOfPhase 1.03 Distribution / Demo Sounds / ResonantSaw&Square < prev    next >
Unknown  |  1994-12-20  |  8.6 KB  |  [?Syd/?Syn]

view JSON data     |     view as text     |     open on a Mac     |     open on a PC

This file was not able to be converted.
This format is not currently supported by dexvert.

ConfidenceProgramDetectionMatch TypeSupport
100% file data default


id metadata
keyvalue
macFileType[?Syd]
macFileCreator[?Syn]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 53 79 6e 32 02 00 00 00 | 00 00 00 ee 56 00 00 64 |Syn2....|....V..d|
|00000010| 00 00 00 00 3b 58 08 80 | 84 1e 00 08 01 01 80 84 |....;X..|........|
|00000020| 1e 00 00 12 7a 00 01 00 | 15 00 00 00 23 73 6f 6e |....z...|....#son|
|00000030| 67 20 70 6f 73 74 70 72 | 6f 63 65 73 73 69 6e 67 |g postpr|ocessing|
|00000040| 0a 02 00 00 00 02 1a 00 | 2f 00 f4 01 22 01 11 00 |........|/..."...|
|00000050| 00 00 52 65 73 6f 6e 61 | 6e 74 20 53 61 77 74 6f |..Resona|nt Sawto|
|00000060| 6f 74 68 00 00 00 00 00 | 00 00 00 01 00 00 00 00 |oth.....|........|
|00000070| 00 40 42 0f 00 00 00 00 | 00 00 00 00 00 00 00 00 |.@B.....|........|
|00000080| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 40 42 0f |........|.....@B.|
|00000090| 00 40 42 0f 00 00 00 00 | 00 00 40 42 0f 00 00 00 |.@B.....|..@B....|
|000000a0| 00 00 00 00 00 00 00 01 | 01 11 00 00 00 52 65 73 |........|.....Res|
|000000b0| 6f 6e 61 6e 74 20 53 61 | 77 74 6f 6f 74 68 00 18 |onant Sa|wtooth..|
|000000c0| 00 00 00 23 63 68 61 6e | 6e 65 6c 20 70 6f 73 74 |...#chan|nel post|
|000000d0| 70 72 6f 63 65 73 73 69 | 6e 67 0a 02 01 00 00 00 |processi|ng......|
|000000e0| 01 00 00 00 09 94 28 00 | c0 00 00 00 00 00 00 00 |......(.|........|
|000000f0| 00 00 00 00 e8 03 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000100| 00 00 ff ff e8 03 e8 03 | 00 00 e8 03 00 00 00 00 |........|........|
|00000110| 00 00 02 1a 00 2f 00 f4 | 01 22 01 0f 00 00 00 52 |...../..|.".....R|
|00000120| 65 73 6f 6e 61 6e 74 20 | 53 71 75 61 72 65 00 00 |esonant |Square..|
|00000130| 00 00 00 00 00 00 01 00 | 00 00 00 00 40 42 0f 00 |........|....@B..|
|00000140| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000150| 00 00 00 00 00 00 00 00 | 40 42 0f 00 40 42 0f 00 |........|@B..@B..|
|00000160| 00 00 00 00 00 40 42 0f | 00 00 00 00 00 00 00 00 |.....@B.|........|
|00000170| 00 00 01 01 0f 00 00 00 | 52 65 73 6f 6e 61 6e 74 |........|Resonant|
|00000180| 20 53 71 75 61 72 65 00 | 18 00 00 00 23 63 68 61 | Square.|....#cha|
|00000190| 6e 6e 65 6c 20 70 6f 73 | 74 70 72 6f 63 65 73 73 |nnel pos|tprocess|
|000001a0| 69 6e 67 0a 02 03 00 00 | 00 01 00 00 00 09 96 28 |ing.....|.......(|
|000001b0| 00 c0 00 00 00 00 00 00 | 00 00 00 00 00 e8 03 00 |........|........|
|000001c0| 00 00 00 00 00 00 00 00 | 00 00 00 ff ff e8 03 e8 |........|........|
|000001d0| 03 00 00 e8 03 00 00 01 | 00 00 00 05 96 28 00 c0 |........|.....(..|
|000001e0| 00 00 00 00 00 00 00 00 | 00 00 00 e8 03 00 00 00 |........|........|
|000001f0| 00 00 00 00 00 00 00 00 | 00 ff ff e8 03 e8 03 00 |........|........|
|00000200| 00 e8 03 00 00 01 00 00 | 00 09 94 28 00 c0 00 00 |........|...(....|
|00000210| 00 00 00 00 00 00 00 00 | 00 e8 03 00 00 00 00 00 |........|........|
|00000220| 00 00 00 00 00 00 00 ff | ff e8 03 e8 03 00 00 e8 |........|........|
|00000230| 03 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 05 |........|........|
|00000240| 00 00 00 01 0f 00 28 00 | 67 02 4b 01 0c 00 00 00 |......(.|g.K.....|
|00000250| 52 65 73 6f 6e 20 46 69 | 6c 74 65 72 9b 06 00 00 |Reson Fi|lter....|
|00000260| 23 20 73 65 63 6f 6e 64 | 20 6f 72 64 65 72 20 72 |# second| order r|
|00000270| 65 63 75 72 73 69 76 65 | 20 66 69 6c 74 65 72 2e |ecursive| filter.|
|00000280| 0a 23 20 66 72 6f 6d 20 | 41 70 70 65 6e 64 69 78 |.# from |Appendix|
|00000290| 20 28 70 61 67 65 20 33 | 34 39 2d 33 35 30 29 20 | (page 3|49-350) |
|000002a0| 6f 66 0a 23 20 44 6f 64 | 67 65 2c 20 43 68 61 72 |of.# Dod|ge, Char|
|000002b0| 6c 65 73 20 61 6e 64 20 | 4a 65 72 73 65 2c 20 54 |les and |Jerse, T|
|000002c0| 68 6f 6d 61 73 20 41 2e | 0a 23 20 43 6f 6d 70 75 |homas A.|.# Compu|
|000002d0| 74 65 72 20 4d 75 73 69 | 63 3a 20 20 53 79 6e 74 |ter Musi|c: Synt|
|000002e0| 68 65 73 69 73 2c 20 43 | 6f 6d 70 6f 73 69 74 69 |hesis, C|ompositi|
|000002f0| 6f 6e 2c 20 61 6e 64 20 | 50 65 72 66 6f 72 6d 61 |on, and |Performa|
|00000300| 6e 63 65 0a 23 20 53 63 | 68 69 72 6d 65 72 20 42 |nce.# Sc|hirmer B|
|00000310| 6f 6f 6b 73 2c 20 4e 65 | 77 20 59 6f 72 6b 2c 20 |ooks, Ne|w York, |
|00000320| 31 39 38 35 0a 0a 23 20 | 66 69 6c 74 65 72 20 73 |1985..# |filter s|
|00000330| 65 74 20 75 70 20 66 75 | 6e 63 74 69 6f 6e 0a 23 |et up fu|nction.#|
|00000340| 20 20 20 63 66 20 3d 20 | 63 65 6e 74 65 72 20 66 | cf = |center f|
|00000350| 72 65 71 75 65 6e 63 79 | 20 69 6e 20 48 65 72 74 |requency| in Hert|
|00000360| 7a 2e 0a 23 20 20 20 62 | 77 20 3d 20 33 20 64 42 |z..# b|w = 3 dB|
|00000370| 20 62 61 6e 64 77 69 64 | 74 68 20 69 6e 20 48 65 | bandwid|th in He|
|00000380| 72 74 7a 0a 23 20 20 20 | 73 63 6c 20 3d 20 61 6d |rtz.# |scl = am|
|00000390| 70 6c 69 74 75 64 65 20 | 73 63 61 6c 69 6e 67 20 |plitude |scaling |
|000003a0| 6d 65 74 68 6f 64 0a 23 | 20 20 20 20 20 30 20 3d |method.#| 0 =|
|000003b0| 20 6e 6f 20 73 63 61 6c | 69 6e 67 0a 23 20 20 20 | no scal|ing.# |
|000003c0| 20 20 31 20 3d 20 67 61 | 69 6e 20 3d 20 31 20 61 | 1 = ga|in = 1 a|
|000003d0| 74 20 63 66 0a 23 20 20 | 20 20 20 32 20 3d 20 67 |t cf.# | 2 = g|
|000003e0| 61 69 6e 20 3d 20 31 20 | 6f 6e 20 77 68 69 74 65 |ain = 1 |on white|
|000003f0| 20 6e 6f 69 73 65 20 69 | 6e 70 75 74 0a 23 20 20 | noise i|nput.# |
|00000400| 20 73 72 20 3d 20 73 61 | 6d 70 6c 69 6e 67 20 72 | sr = sa|mpling r|
|00000410| 61 74 65 20 69 6e 20 48 | 65 72 74 7a 0a 23 20 20 |ate in H|ertz.# |
|00000420| 20 72 65 74 75 72 6e 73 | 20 61 72 72 61 79 20 66 | returns| array f|
|00000430| 6f 72 20 77 6f 72 6b 73 | 70 61 63 65 0a 66 75 6e |or works|pace.fun|
|00000440| 63 20 72 73 6e 73 65 74 | 28 63 66 3a 64 6f 75 62 |c rsnset|(cf:doub|
|00000450| 6c 65 2c 20 62 77 3a 64 | 6f 75 62 6c 65 2c 20 73 |le, bw:d|ouble, s|
|00000460| 63 6c 3a 69 6e 74 2c 20 | 73 72 3a 64 6f 75 62 6c |cl:int, |sr:doubl|
|00000470| 65 29 20 3a 20 64 6f 75 | 62 6c 65 61 72 72 61 79 |e) : dou|blearray|
|00000480| 0a 09 28 0a 09 09 76 61 | 72 20 61 3a 64 6f 75 62 |..(...va|r a:doub|
|00000490| 6c 65 61 72 72 61 79 28 | 35 29 3b 0a 09 09 73 65 |learray(|5);...se|
|000004a0| 74 20 61 5b 32 5d 20 3a | 3d 20 65 78 70 28 2d 20 |t a[2] :|= exp(- |
|000004b0| 32 20 2a 20 70 69 20 2a | 20 62 77 20 2f 20 73 72 |2 * pi *| bw / sr|
|000004c0| 29 3b 0a 09 09 76 61 72 | 20 63 3a 64 6f 75 62 6c |);...var| c:doubl|
|000004d0| 65 20 3d 20 31 20 2b 20 | 61 5b 32 5d 3b 0a 09 09 |e = 1 + |a[2];...|
|000004e0| 73 65 74 20 61 5b 31 5d | 20 3a 3d 20 2d 34 20 2a |set a[1]| := -4 *|
|000004f0| 20 61 5b 32 5d 20 2f 20 | 63 20 2a 20 63 6f 73 28 | a[2] / |c * cos(|
|00000500| 32 20 2a 20 70 69 20 2a | 20 63 66 20 2f 20 73 72 |2 * pi *| cf / sr|
|00000510| 29 3b 0a 09 09 69 66 20 | 28 73 63 6c 20 3d 20 32 |);...if |(scl = 2|
|00000520| 29 20 74 68 65 6e 0a 09 | 09 09 73 65 74 20 61 5b |) then..|..set a[|
|00000530| 30 5d 20 3a 3d 20 73 71 | 72 74 28 28 31 20 2d 20 |0] := sq|rt((1 - |
|00000540| 61 5b 32 5d 29 20 2f 20 | 63 20 2a 20 28 63 20 2a |a[2]) / |c * (c *|
|00000550| 20 63 20 2d 20 61 5b 31 | 5d 20 2a 20 61 5b 31 5d | c - a[1|] * a[1]|
|00000560| 29 29 0a 09 09 65 6c 73 | 65 20 69 66 20 28 73 63 |))...els|e if (sc|
|00000570| 6c 20 3d 20 31 29 20 74 | 68 65 6e 0a 09 09 09 73 |l = 1) t|hen....s|
|00000580| 65 74 20 61 5b 30 5d 20 | 3a 3d 20 28 31 20 2d 20 |et a[0] |:= (1 - |
|00000590| 61 5b 32 5d 29 20 2a 20 | 73 71 72 74 28 31 20 2d |a[2]) * |sqrt(1 -|
|000005a0| 20 61 5b 31 5d 20 2a 20 | 61 5b 31 5d 20 2f 20 28 | a[1] * |a[1] / (|
|000005b0| 34 20 2a 20 61 5b 32 5d | 29 29 0a 09 09 65 6c 73 |4 * a[2]|))...els|
|000005c0| 65 0a 09 09 09 73 65 74 | 20 61 5b 30 5d 20 3a 3d |e....set| a[0] :=|
|000005d0| 20 31 3b 0a 09 09 61 0a | 09 29 3b 0a 0a 23 20 61 | 1;...a.|.);..# a|
|000005e0| 70 70 6c 79 20 74 68 65 | 20 66 69 6c 74 65 72 20 |pply the| filter |
|000005f0| 74 6f 20 6f 6e 65 20 73 | 61 6d 70 6c 65 0a 23 20 |to one s|ample.# |
|00000600| 20 20 78 69 6e 20 3d 20 | 73 61 6d 70 6c 65 20 70 | xin = |sample p|
|00000610| 6f 69 6e 74 20 69 6e 20 | 5b 2d 31 2e 2e 31 5d 0a |oint in |[-1..1].|
|00000620| 23 20 20 20 61 20 3d 20 | 77 6f 72 6b 73 70 61 63 |# a = |workspac|
|00000630| 65 20 61 72 72 61 79 0a | 23 20 20 20 72 65 74 75 |e array.|# retu|
|00000640| 72 6e 73 20 74 68 65 20 | 6e 65 77 20 73 61 6d 70 |rns the |new samp|
|00000650| 6c 65 20 70 6f 69 6e 74 | 0a 66 75 6e 63 20 72 65 |le point|.func re|
|00000660| 73 6f 6e 28 78 69 6e 3a | 64 6f 75 62 6c 65 2c 20 |son(xin:|double, |
|00000670| 61 3a 64 6f 75 62 6c 65 | 61 72 72 61 79 29 20 3a |a:double|array) :|
|00000680| 20 64 6f 75 62 6c 65 0a | 09 28 0a 09 09 76 61 72 | double.|.(...var|
|00000690| 20 79 69 3a 64 6f 75 62 | 6c 65 20 3d 20 61 5b 30 | yi:doub|le = a[0|
|000006a0| 5d 20 2a 20 78 69 6e 20 | 2d 20 61 5b 31 5d 20 2a |] * xin |- a[1] *|
|000006b0| 20 61 5b 33 5d 20 2d 20 | 61 5b 32 5d 20 2a 20 61 | a[3] - |a[2] * a|
|000006c0| 5b 34 5d 3b 0a 09 09 73 | 65 74 20 61 5b 34 5d 20 |[4];...s|et a[4] |
|000006d0| 3a 3d 20 61 5b 33 5d 3b | 0a 09 09 73 65 74 20 61 |:= a[3];|...set a|
|000006e0| 5b 33 5d 20 3a 3d 20 79 | 69 0a 09 29 3b 0a 0a 23 |[3] := y|i..);..#|
|000006f0| 20 61 70 70 6c 79 20 66 | 69 6c 74 65 72 20 74 6f | apply f|ilter to|
|00000700| 20 61 20 72 61 6e 67 65 | 20 6f 66 20 73 61 6d 70 | a range| of samp|
|00000710| 6c 65 73 2e 20 20 6f 6e | 65 20 70 61 73 73 20 69 |les. on|e pass i|
|00000720| 73 20 6d 61 64 65 20 74 | 6f 20 73 74 61 62 69 6c |s made t|o stabil|
|00000730| 69 7a 65 20 66 69 6c 74 | 65 72 2c 0a 23 20 61 6e |ize filt|er,.# an|
|00000740| 64 20 74 68 65 20 73 65 | 63 6f 6e 64 20 70 61 73 |d the se|cond pas|
|00000750| 73 20 69 73 20 74 68 65 | 6e 20 75 73 65 64 0a 66 |s is the|n used.f|
|00000760| 75 6e 63 20 61 70 70 6c | 79 72 65 73 6f 6e 28 64 |unc appl|yreson(d|
|00000770| 61 74 61 3a 66 69 78 65 | 64 61 72 72 61 79 2c 20 |ata:fixe|darray, |
|00000780| 73 74 61 72 74 3a 69 6e | 74 2c 20 6c 65 6e 3a 69 |start:in|t, len:i|
|00000790| 6e 74 2c 20 61 3a 64 6f | 75 62 6c 65 61 72 72 61 |nt, a:do|ublearra|
|000007a0| 79 2c 20 63 6f 75 6e 74 | 3a 69 6e 74 29 20 3a 20 |y, count|:int) : |
|000007b0| 66 69 78 65 64 61 72 72 | 61 79 0a 09 28 0a 09 09 |fixedarr|ay..(...|
|000007c0| 76 61 72 20 69 3a 69 6e | 74 20 3d 20 30 3b 0a 09 |var i:in|t = 0;..|
|000007d0| 09 77 68 69 6c 65 20 63 | 6f 75 6e 74 20 3e 20 30 |.while c|ount > 0|
|000007e0| 20 64 6f 0a 09 09 09 28 | 0a 09 09 09 09 73 65 74 | do....(|.....set|
|000007f0| 20 69 20 3a 3d 20 30 3b | 0a 09 09 09 09 77 68 69 | i := 0;|.....whi|
|00000800| 6c 65 20 69 20 3c 20 6c | 65 6e 20 64 6f 0a 09 09 |le i < l|en do...|
|00000810| 09 09 09 28 0a 09 09 09 | 09 09 09 72 65 73 6f 6e |...(....|...reson|
|00000820| 28 64 61 74 61 5b 73 74 | 61 72 74 20 2b 20 69 5d |(data[st|art + i]|
|00000830| 2c 61 29 3b 0a 09 09 09 | 09 09 09 73 65 74 20 69 |,a);....|...set i|
|00000840| 20 3a 3d 20 69 20 2b 20 | 31 3b 0a 09 09 09 09 09 | := i + |1;......|
|00000850| 29 3b 0a 09 09 09 09 73 | 65 74 20 63 6f 75 6e 74 |);.....s|et count|
|00000860| 20 3a 3d 20 63 6f 75 6e | 74 20 2d 20 31 3b 0a 09 | := coun|t - 1;..|
|00000870| 09 09 29 3b 0a 09 09 73 | 65 74 20 69 20 3a 3d 20 |..);...s|et i := |
|00000880| 30 3b 0a 09 09 77 68 69 | 6c 65 20 69 20 3c 20 6c |0;...whi|le i < l|
|00000890| 65 6e 20 64 6f 0a 09 09 | 09 28 0a 09 09 09 09 73 |en do...|.(.....s|
|000008a0| 65 74 20 64 61 74 61 5b | 73 74 61 72 74 20 2b 20 |et data[|start + |
|000008b0| 69 5d 20 3a 3d 20 66 69 | 78 65 64 20 72 65 73 6f |i] := fi|xed reso|
|000008c0| 6e 28 64 61 74 61 5b 73 | 74 61 72 74 20 2b 20 69 |n(data[s|tart + i|
|000008d0| 5d 2c 61 29 3b 0a 09 09 | 09 09 73 65 74 20 69 20 |],a);...|..set i |
|000008e0| 3a 3d 20 69 20 2b 20 31 | 3b 0a 09 09 09 29 3b 0a |:= i + 1|;....);.|
|000008f0| 09 09 64 61 74 61 0a 09 | 29 3b 0a 01 13 00 14 00 |..data..|);......|
|00000900| 55 02 65 01 09 00 00 00 | 4e 6f 72 6d 61 6c 69 7a |U.e.....|Normaliz|
|00000910| 65 8f 04 00 00 23 20 74 | 68 69 73 20 66 75 6e 63 |e....# t|his func|
|00000920| 74 69 6f 6e 20 6e 6f 72 | 6d 61 6c 69 7a 65 73 20 |tion nor|malizes |
|00000930| 74 68 65 20 7a 6f 6e 65 | 20 69 6e 20 74 68 65 20 |the zone| in the |
|00000940| 61 72 72 61 79 0a 66 75 | 6e 63 20 6e 6f 72 6d 61 |array.fu|nc norma|
|00000950| 6c 69 7a 65 73 65 67 6d | 65 6e 74 28 64 61 74 61 |lizesegm|ent(data|
|00000960| 3a 66 69 78 65 64 61 72 | 72 61 79 2c 73 74 61 72 |:fixedar|ray,star|
|00000970| 74 3a 69 6e 74 2c 6c 65 | 6e 3a 69 6e 74 29 3a 66 |t:int,le|n:int):f|
|00000980| 69 78 65 64 61 72 72 61 | 79 0a 09 28 0a 09 09 76 |ixedarra|y..(...v|
|00000990| 61 72 20 69 3a 69 6e 74 | 20 3d 20 30 3b 0a 09 09 |ar i:int| = 0;...|
|000009a0| 76 61 72 20 6d 61 78 3a | 64 6f 75 62 6c 65 20 3d |var max:|double =|
|000009b0| 20 30 3b 0a 0a 09 09 77 | 68 69 6c 65 20 69 20 3c | 0;....w|hile i <|
|000009c0| 20 6c 65 6e 20 64 6f 0a | 09 09 09 28 0a 09 09 09 | len do.|...(....|
|000009d0| 09 76 61 72 20 70 6f 69 | 6e 74 3a 64 6f 75 62 6c |.var poi|nt:doubl|
|000009e0| 65 20 3d 20 61 62 73 20 | 64 61 74 61 5b 73 74 61 |e = abs |data[sta|
|000009f0| 72 74 20 2b 20 69 5d 3b | 0a 09 09 09 09 69 66 20 |rt + i];|.....if |
|00000a00| 6d 61 78 20 3c 20 70 6f | 69 6e 74 20 74 68 65 6e |max < po|int then|
|00000a10| 20 73 65 74 20 6d 61 78 | 20 3a 3d 20 70 6f 69 6e | set max| := poin|
|00000a20| 74 3b 0a 09 09 09 09 73 | 65 74 20 69 20 3a 3d 20 |t;.....s|et i := |
|00000a30| 69 20 2b 20 31 3b 0a 09 | 09 09 29 3b 0a 0a 09 09 |i + 1;..|..);....|
|00000a40| 73 65 74 20 69 20 3a 3d | 20 30 3b 0a 09 09 69 66 |set i :=| 0;...if|
|00000a50| 20 6d 61 78 20 3c 20 2e | 30 31 20 74 68 65 6e 20 | max < .|01 then |
|00000a60| 65 72 72 6f 72 20 22 6e | 6f 72 6d 61 6c 69 7a 65 |error "n|ormalize|
|00000a70| 73 65 67 6d 65 6e 74 3a | 20 20 73 63 61 6c 65 20 |segment:| scale |
|00000a80| 69 73 20 76 65 72 79 20 | 6c 61 72 67 65 22 20 72 |is very |large" r|
|00000a90| 65 73 75 6d 61 62 6c 65 | 20 74 72 75 65 3b 0a 09 |esumable| true;..|
|00000aa0| 09 77 68 69 6c 65 20 69 | 20 3c 20 6c 65 6e 20 64 |.while i| < len d|
|00000ab0| 6f 0a 09 09 09 28 0a 09 | 09 09 09 73 65 74 20 64 |o....(..|...set d|
|00000ac0| 61 74 61 5b 73 74 61 72 | 74 20 2b 20 69 5d 20 3a |ata[star|t + i] :|
|00000ad0| 3d 20 66 69 78 65 64 28 | 64 61 74 61 5b 73 74 61 |= fixed(|data[sta|
|00000ae0| 72 74 20 2b 20 69 5d 20 | 2f 20 6d 61 78 29 3b 0a |rt + i] |/ max);.|
|00000af0| 09 09 09 09 73 65 74 20 | 69 20 3a 3d 20 69 20 2b |....set |i := i +|
|00000b00| 20 31 3b 0a 09 09 09 29 | 3b 0a 0a 09 09 64 61 74 | 1;....)|;....dat|
|00000b10| 61 0a 09 29 3b 0a 0a 23 | 20 74 68 69 73 20 66 75 |a..);..#| this fu|
|00000b20| 6e 63 74 69 6f 6e 20 73 | 63 61 6c 65 73 20 61 6e |nction s|cales an|
|00000b30| 64 20 73 68 69 66 74 73 | 20 74 68 65 20 73 6f 75 |d shifts| the sou|
|00000b40| 6e 64 20 74 6f 20 6d 61 | 78 69 6d 69 7a 65 20 74 |nd to ma|ximize t|
|00000b50| 68 65 20 63 68 61 6e 6e | 65 6c 20 75 73 61 67 65 |he chann|el usage|
|00000b60| 0a 66 75 6e 63 20 6d 61 | 78 69 6d 69 7a 65 73 65 |.func ma|ximizese|
|00000b70| 67 6d 65 6e 74 28 64 61 | 74 61 3a 66 69 78 65 64 |gment(da|ta:fixed|
|00000b80| 61 72 72 61 79 2c 73 74 | 61 72 74 3a 69 6e 74 2c |array,st|art:int,|
|00000b90| 6c 65 6e 3a 69 6e 74 29 | 3a 66 69 78 65 64 61 72 |len:int)|:fixedar|
|00000ba0| 72 61 79 0a 09 28 0a 09 | 09 76 61 72 20 69 3a 69 |ray..(..|.var i:i|
|00000bb0| 6e 74 20 3d 20 30 3b 0a | 09 09 76 61 72 20 6d 61 |nt = 0;.|..var ma|
|00000bc0| 78 3a 64 6f 75 62 6c 65 | 20 3d 20 2d 31 30 30 30 |x:double| = -1000|
|00000bd0| 30 30 30 3b 0a 09 09 76 | 61 72 20 6d 69 6e 3a 64 |000;...v|ar min:d|
|00000be0| 6f 75 62 6c 65 20 3d 20 | 31 30 30 30 30 30 30 3b |ouble = |1000000;|
|00000bf0| 0a 0a 09 09 77 68 69 6c | 65 20 69 20 3c 20 6c 65 |....whil|e i < le|
|00000c00| 6e 20 64 6f 0a 09 09 09 | 28 0a 09 09 09 09 76 61 |n do....|(.....va|
|00000c10| 72 20 69 74 65 6d 3a 66 | 69 78 65 64 20 3d 20 64 |r item:f|ixed = d|
|00000c20| 61 74 61 5b 73 74 61 72 | 74 20 2b 20 69 5d 3b 0a |ata[star|t + i];.|
|00000c30| 09 09 09 09 69 66 20 6d | 61 78 20 3c 20 69 74 65 |....if m|ax < ite|
|00000c40| 6d 20 74 68 65 6e 20 73 | 65 74 20 6d 61 78 20 3a |m then s|et max :|
|00000c50| 3d 20 69 74 65 6d 3b 0a | 09 09 09 09 69 66 20 6d |= item;.|....if m|
|00000c60| 69 6e 20 3e 20 69 74 65 | 6d 20 74 68 65 6e 20 73 |in > ite|m then s|
|00000c70| 65 74 20 6d 69 6e 20 3a | 3d 20 69 74 65 6d 3b 0a |et min :|= item;.|
|00000c80| 09 09 09 09 73 65 74 20 | 69 20 3a 3d 20 69 20 2b |....set |i := i +|
|00000c90| 20 31 3b 0a 09 09 09 29 | 3b 0a 0a 09 09 73 65 74 | 1;....)|;....set|
|00000ca0| 20 69 20 3a 3d 20 30 3b | 0a 09 09 76 61 72 20 73 | i := 0;|...var s|
|00000cb0| 70 61 6e 3a 64 6f 75 62 | 6c 65 20 3d 20 28 6d 61 |pan:doub|le = (ma|
|00000cc0| 78 20 2d 20 6d 69 6e 29 | 20 2f 20 32 3b 0a 09 09 |x - min)| / 2;...|
|00000cd0| 69 66 20 73 70 61 6e 20 | 3c 20 2e 30 31 20 74 68 |if span |< .01 th|
|00000ce0| 65 6e 20 65 72 72 6f 72 | 20 22 6d 61 78 69 6d 69 |en error| "maximi|
|00000cf0| 7a 65 73 65 67 6d 65 6e | 74 3a 20 20 73 70 61 6e |zesegmen|t: span|
|00000d00| 20 69 73 20 76 65 72 79 | 20 73 6d 61 6c 6c 22 20 | is very| small" |
|00000d10| 72 65 73 75 6d 61 62 6c | 65 20 74 72 75 65 3b 0a |resumabl|e true;.|
|00000d20| 09 09 77 68 69 6c 65 20 | 69 20 3c 20 6c 65 6e 20 |..while |i < len |
|00000d30| 64 6f 0a 09 09 09 28 0a | 09 09 09 09 73 65 74 20 |do....(.|....set |
|00000d40| 64 61 74 61 5b 73 74 61 | 72 74 20 2b 20 69 5d 20 |data[sta|rt + i] |
|00000d50| 3a 3d 20 66 69 78 65 64 | 28 28 64 61 74 61 5b 73 |:= fixed|((data[s|
|00000d60| 74 61 72 74 20 2b 20 69 | 5d 20 2d 20 6d 69 6e 29 |tart + i|] - min)|
|00000d70| 20 2f 20 73 70 61 6e 20 | 2d 20 31 29 3b 0a 09 09 | / span |- 1);...|
|00000d80| 09 09 73 65 74 20 69 20 | 3a 3d 20 69 20 2b 20 31 |..set i |:= i + 1|
|00000d90| 3b 0a 09 09 09 29 3b 0a | 0a 09 09 64 61 74 61 0a |;....);.|...data.|
|00000da0| 09 29 3b 0a 01 0f 00 1f | 00 66 02 55 01 0b 00 00 |.);.....|.f.U....|
|00000db0| 00 50 75 6c 73 65 20 57 | 69 64 74 68 7a 03 00 00 |.Pulse W|idthz...|
|00000dc0| 23 20 73 74 61 74 69 63 | 20 70 75 6c 73 65 77 69 |# static| pulsewi|
|00000dd0| 64 74 68 20 66 75 6e 63 | 74 69 6f 6e 0a 23 20 20 |dth func|tion.# |
|00000de0| 20 70 68 61 73 65 20 3d | 20 69 6e 64 65 78 20 28 | phase =| index (|
|00000df0| 30 2e 2e 31 29 0a 23 20 | 20 20 64 75 74 79 20 3d |0..1).# | duty =|
|00000e00| 20 66 72 61 63 74 69 6f | 6e 20 61 74 20 68 69 67 | fractio|n at hig|
|00000e10| 68 20 6c 65 76 65 6c 0a | 23 20 20 20 74 72 61 6e |h level.|# tran|
|00000e20| 73 20 3d 20 66 72 61 63 | 74 69 6f 6e 20 69 6e 20 |s = frac|tion in |
|00000e30| 74 72 61 6e 73 69 74 20 | 62 65 74 77 65 65 6e 20 |transit |between |
|00000e40| 6c 65 76 65 6c 73 0a 66 | 75 6e 63 20 70 75 6c 73 |levels.f|unc puls|
|00000e50| 65 77 69 64 74 68 28 70 | 68 61 73 65 3a 64 6f 75 |ewidth(p|hase:dou|
|00000e60| 62 6c 65 2c 20 64 75 74 | 79 3a 64 6f 75 62 6c 65 |ble, dut|y:double|
|00000e70| 2c 20 74 72 61 6e 73 3a | 64 6f 75 62 6c 65 29 20 |, trans:|double) |
|00000e80| 3a 20 64 6f 75 62 6c 65 | 0a 09 28 0a 09 09 76 61 |: double|..(...va|
|00000e90| 72 20 70 65 61 6b 31 3a | 64 6f 75 62 6c 65 20 3d |r peak1:|double =|
|00000ea0| 20 74 72 61 6e 73 20 2f | 20 34 3b 0a 09 09 76 61 | trans /| 4;...va|
|00000eb0| 72 20 70 65 61 6b 32 3a | 64 6f 75 62 6c 65 20 3d |r peak2:|double =|
|00000ec0| 20 70 65 61 6b 31 20 2b | 20 28 64 75 74 79 20 2d | peak1 +| (duty -|
|00000ed0| 20 74 72 61 6e 73 20 2f | 20 32 29 3b 0a 09 09 76 | trans /| 2);...v|
|00000ee0| 61 72 20 74 72 6f 75 67 | 68 31 3a 64 6f 75 62 6c |ar troug|h1:doubl|
|00000ef0| 65 20 3d 20 70 65 61 6b | 32 20 2b 20 74 72 61 6e |e = peak|2 + tran|
|00000f00| 73 20 2f 20 32 3b 0a 09 | 09 76 61 72 20 74 72 6f |s / 2;..|.var tro|
|00000f10| 75 67 68 32 3a 64 6f 75 | 62 6c 65 20 3d 20 31 20 |ugh2:dou|ble = 1 |
|00000f20| 2d 20 74 72 61 6e 73 20 | 2f 20 34 3b 0a 0a 09 09 |- trans |/ 4;....|
|00000f30| 69 66 20 70 68 61 73 65 | 20 3c 20 70 65 61 6b 31 |if phase| < peak1|
|00000f40| 20 74 68 65 6e 0a 09 09 | 09 70 68 61 73 65 20 2f | then...|.phase /|
|00000f50| 20 70 65 61 6b 31 0a 09 | 09 65 6c 73 65 20 69 66 | peak1..|.else if|
|00000f60| 20 70 68 61 73 65 20 3c | 20 70 65 61 6b 32 20 74 | phase <| peak2 t|
|00000f70| 68 65 6e 0a 09 09 09 31 | 0a 09 09 65 6c 73 65 20 |hen....1|...else |
|00000f80| 69 66 20 70 68 61 73 65 | 20 3c 20 74 72 6f 75 67 |if phase| < troug|
|00000f90| 68 31 20 74 68 65 6e 0a | 09 09 09 28 74 72 6f 75 |h1 then.|...(trou|
|00000fa0| 67 68 31 20 2d 20 70 68 | 61 73 65 29 20 2f 20 70 |gh1 - ph|ase) / p|
|00000fb0| 65 61 6b 31 20 2d 20 31 | 0a 09 09 65 6c 73 65 20 |eak1 - 1|...else |
|00000fc0| 69 66 20 70 68 61 73 65 | 20 3c 20 74 72 6f 75 67 |if phase| < troug|
|00000fd0| 68 32 20 74 68 65 6e 0a | 09 09 09 2d 31 0a 09 09 |h2 then.|...-1...|
|00000fe0| 65 6c 73 65 0a 09 09 09 | 28 70 68 61 73 65 20 2d |else....|(phase -|
|00000ff0| 20 74 72 6f 75 67 68 32 | 29 20 2f 20 28 74 72 61 | trough2|) / (tra|
|00001000| 6e 73 20 2f 20 34 29 20 | 2d 20 31 0a 09 29 3b 0a |ns / 4) |- 1..);.|
|00001010| 0a 23 20 67 65 6e 65 72 | 61 74 65 20 70 75 6c 73 |.# gener|ate puls|
|00001020| 65 77 69 64 74 68 20 77 | 61 76 65 66 6f 72 6d 20 |ewidth w|aveform |
|00001030| 69 6e 74 6f 20 61 6e 20 | 61 72 72 61 79 20 73 65 |into an |array se|
|00001040| 63 74 69 6f 6e 0a 66 75 | 6e 63 20 70 75 6c 73 65 |ction.fu|nc pulse|
|00001050| 77 69 64 74 68 61 72 72 | 61 79 28 64 61 74 61 3a |widtharr|ay(data:|
|00001060| 66 69 78 65 64 61 72 72 | 61 79 2c 20 73 74 61 72 |fixedarr|ay, star|
|00001070| 74 3a 69 6e 74 2c 20 6c | 65 6e 3a 69 6e 74 2c 20 |t:int, l|en:int, |
|00001080| 64 75 74 79 3a 64 6f 75 | 62 6c 65 2c 20 74 72 61 |duty:dou|ble, tra|
|00001090| 6e 73 3a 64 6f 75 62 6c | 65 29 20 3a 20 66 69 78 |ns:doubl|e) : fix|
|000010a0| 65 64 61 72 72 61 79 0a | 09 28 0a 09 09 76 61 72 |edarray.|.(...var|
|000010b0| 20 69 3a 69 6e 74 20 3d | 20 30 3b 0a 09 09 77 68 | i:int =| 0;...wh|
|000010c0| 69 6c 65 20 69 20 3c 20 | 6c 65 6e 20 64 6f 0a 09 |ile i < |len do..|
|000010d0| 09 09 28 0a 09 09 09 09 | 73 65 74 20 64 61 74 61 |..(.....|set data|
|000010e0| 5b 69 20 2b 20 73 74 61 | 72 74 5d 20 3a 3d 20 66 |[i + sta|rt] := f|
|000010f0| 69 78 65 64 20 70 75 6c | 73 65 77 69 64 74 68 28 |ixed pul|sewidth(|
|00001100| 69 20 2f 20 6c 65 6e 2c | 64 75 74 79 2c 74 72 61 |i / len,|duty,tra|
|00001110| 6e 73 29 3b 0a 09 09 09 | 09 73 65 74 20 69 20 3a |ns);....|.set i :|
|00001120| 3d 20 69 20 2b 20 31 3b | 0a 09 09 09 29 3b 0a 09 |= i + 1;|....);..|
|00001130| 09 64 61 74 61 0a 09 29 | 3b 0a 01 4f 00 2d 00 0e |.data..)|;..O.-..|
|00001140| 02 32 01 08 00 00 00 53 | 61 77 74 6f 6f 74 68 e9 |.2.....S|awtooth.|
|00001150| 00 00 00 23 20 67 65 6e | 65 72 61 74 65 20 61 20 |...# gen|erate a |
|00001160| 73 61 77 74 6f 6f 74 68 | 20 77 61 76 65 0a 66 75 |sawtooth| wave.fu|
|00001170| 6e 63 20 73 61 77 74 6f | 6f 74 68 61 72 72 61 79 |nc sawto|otharray|
|00001180| 28 64 61 74 61 3a 66 69 | 78 65 64 61 72 72 61 79 |(data:fi|xedarray|
|00001190| 2c 20 73 74 61 72 74 3a | 69 6e 74 2c 20 6c 65 6e |, start:|int, len|
|000011a0| 3a 69 6e 74 29 3a 66 69 | 78 65 64 61 72 72 61 79 |:int):fi|xedarray|
|000011b0| 0a 09 28 0a 09 09 76 61 | 72 20 69 3a 69 6e 74 20 |..(...va|r i:int |
|000011c0| 3d 20 30 3b 0a 09 09 77 | 68 69 6c 65 20 69 20 3c |= 0;...w|hile i <|
|000011d0| 20 6c 65 6e 20 64 6f 0a | 09 09 09 28 0a 09 09 09 | len do.|...(....|
|000011e0| 09 73 65 74 20 64 61 74 | 61 5b 69 20 2b 20 73 74 |.set dat|a[i + st|
|000011f0| 61 72 74 5d 20 3a 3d 20 | 66 69 78 65 64 28 2d 31 |art] := |fixed(-1|
|00001200| 20 2b 20 32 20 2a 20 69 | 20 2f 20 28 6c 65 6e 20 | + 2 * i| / (len |
|00001210| 2d 20 31 29 29 3b 0a 09 | 09 09 09 73 65 74 20 69 |- 1));..|...set i|
|00001220| 20 3a 3d 20 69 20 2b 20 | 31 3b 0a 09 09 09 29 3b | := i + |1;....);|
|00001230| 0a 09 09 64 61 74 61 0a | 09 29 3b 0a 01 12 00 23 |...data.|.);....#|
|00001240| 00 5f 02 42 01 0b 00 00 | 00 54 6f 6e 65 20 46 69 |._.B....|.Tone Fi|
|00001250| 6c 74 65 72 6a 05 00 00 | 23 20 66 69 72 73 74 20 |lterj...|# first |
|00001260| 6f 72 64 65 72 20 72 65 | 63 75 72 73 69 76 65 20 |order re|cursive |
|00001270| 66 69 6c 74 65 72 2e 0a | 23 20 66 72 6f 6d 20 41 |filter..|# from A|
|00001280| 70 70 65 6e 64 69 78 20 | 28 70 61 67 65 20 33 34 |ppendix |(page 34|
|00001290| 39 29 20 6f 66 0a 23 20 | 44 6f 64 67 65 2c 20 43 |9) of.# |Dodge, C|
|000012a0| 68 61 72 6c 65 73 20 61 | 6e 64 20 4a 65 72 73 65 |harles a|nd Jerse|
|000012b0| 2c 20 54 68 6f 6d 61 73 | 20 41 2e 0a 23 20 43 6f |, Thomas| A..# Co|
|000012c0| 6d 70 75 74 65 72 20 4d | 75 73 69 63 3a 20 20 53 |mputer M|usic: S|
|000012d0| 79 6e 74 68 65 73 69 73 | 2c 20 43 6f 6d 70 6f 73 |ynthesis|, Compos|
|000012e0| 69 74 69 6f 6e 2c 20 61 | 6e 64 20 50 65 72 66 6f |ition, a|nd Perfo|
|000012f0| 72 6d 61 6e 63 65 0a 23 | 20 53 63 68 69 72 6d 65 |rmance.#| Schirme|
|00001300| 72 20 42 6f 6f 6b 73 2c | 20 4e 65 77 20 59 6f 72 |r Books,| New Yor|
|00001310| 6b 2c 20 31 39 38 35 0a | 0a 23 20 66 69 6c 74 65 |k, 1985.|.# filte|
|00001320| 72 20 73 65 74 20 75 70 | 20 66 75 6e 63 74 69 6f |r set up| functio|
|00001330| 6e 0a 23 20 20 20 66 63 | 20 3d 20 63 75 74 6f 66 |n.# fc| = cutof|
|00001340| 66 20 66 72 65 71 75 65 | 6e 63 79 20 69 6e 20 48 |f freque|ncy in H|
|00001350| 65 72 74 7a 2e 0a 23 20 | 20 20 20 20 66 63 20 3c |ertz..# | fc <|
|00001360| 20 30 20 3d 3e 20 68 69 | 67 68 20 70 61 73 73 20 | 0 => hi|gh pass |
|00001370| 66 69 6c 74 65 72 0a 23 | 20 20 20 20 20 66 63 20 |filter.#| fc |
|00001380| 3e 20 30 20 3d 3e 20 6c | 6f 77 20 70 61 73 73 20 |> 0 => l|ow pass |
|00001390| 66 69 6c 74 65 72 0a 23 | 20 20 20 73 72 20 3d 20 |filter.#| sr = |
|000013a0| 73 61 6d 70 6c 69 6e 67 | 20 72 61 74 65 20 69 6e |sampling| rate in|
|000013b0| 20 48 65 72 74 7a 0a 23 | 20 20 20 72 65 74 75 72 | Hertz.#| retur|
|000013c0| 6e 73 20 61 72 72 61 79 | 20 6f 66 20 33 20 65 6c |ns array| of 3 el|
|000013d0| 65 6d 65 6e 74 73 20 74 | 6f 20 63 6f 6e 74 61 69 |ements t|o contai|
|000013e0| 6e 20 77 6f 72 6b 73 70 | 61 63 65 20 66 6f 72 20 |n worksp|ace for |
|000013f0| 66 69 6c 74 65 72 0a 66 | 75 6e 63 20 74 6f 6e 65 |filter.f|unc tone|
|00001400| 73 65 74 28 66 63 3a 64 | 6f 75 62 6c 65 2c 20 73 |set(fc:d|ouble, s|
|00001410| 72 3a 64 6f 75 62 6c 65 | 29 20 3a 20 64 6f 75 62 |r:double|) : doub|
|00001420| 6c 65 61 72 72 61 79 0a | 09 28 0a 09 09 76 61 72 |learray.|.(...var|
|00001430| 20 61 3a 64 6f 75 62 6c | 65 61 72 72 61 79 28 33 | a:doubl|earray(3|
|00001440| 29 3b 0a 09 09 76 61 72 | 20 62 3a 64 6f 75 62 6c |);...var| b:doubl|
|00001450| 65 20 3d 20 32 20 2d 20 | 63 6f 73 28 32 20 2a 20 |e = 2 - |cos(2 * |
|00001460| 70 69 20 2a 20 66 63 20 | 2f 20 73 72 29 3b 0a 09 |pi * fc |/ sr);..|
|00001470| 09 73 65 74 20 61 5b 31 | 5d 20 3a 3d 20 73 71 72 |.set a[1|] := sqr|
|00001480| 74 28 62 20 2a 20 62 20 | 2d 20 31 29 20 2d 20 62 |t(b * b |- 1) - b|
|00001490| 3b 0a 09 09 73 65 74 20 | 61 5b 30 5d 20 3a 3d 20 |;...set |a[0] := |
|000014a0| 31 20 2a 20 61 5b 31 5d | 3b 0a 09 09 69 66 20 66 |1 * a[1]|;...if f|
|000014b0| 63 20 3c 20 30 20 74 68 | 65 6e 20 73 65 74 20 61 |c < 0 th|en set a|
|000014c0| 5b 31 5d 20 3a 3d 20 2d | 61 5b 31 5d 3b 0a 09 09 |[1] := -|a[1];...|
|000014d0| 61 0a 09 29 3b 0a 0a 23 | 20 66 69 6c 74 65 72 20 |a..);..#| filter |
|000014e0| 73 69 6e 67 6c 65 20 73 | 74 65 70 20 66 75 6e 63 |single s|tep func|
|000014f0| 74 69 6f 6e 0a 23 20 20 | 20 78 69 6e 20 3d 20 69 |tion.# | xin = i|
|00001500| 6e 70 75 74 20 73 61 6d | 70 6c 65 20 76 61 6c 75 |nput sam|ple valu|
|00001510| 65 20 5b 2d 31 2e 2e 31 | 5d 0a 23 20 20 20 61 20 |e [-1..1|].# a |
|00001520| 3d 20 61 72 72 61 79 20 | 6f 62 74 61 69 6e 65 64 |= array |obtained|
|00001530| 20 66 72 6f 6d 20 74 6f | 6e 65 73 65 74 0a 23 20 | from to|neset.# |
|00001540| 20 20 72 65 74 75 72 6e | 73 20 6e 65 77 20 73 61 | return|s new sa|
|00001550| 6d 70 6c 65 20 76 61 6c | 75 65 0a 66 75 6e 63 20 |mple val|ue.func |
|00001560| 74 6f 6e 65 28 78 69 6e | 3a 64 6f 75 62 6c 65 2c |tone(xin|:double,|
|00001570| 20 61 3a 64 6f 75 62 6c | 65 61 72 72 61 79 29 20 | a:doubl|earray) |
|00001580| 3a 20 64 6f 75 62 6c 65 | 0a 09 28 0a 09 09 73 65 |: double|..(...se|
|00001590| 74 20 61 5b 32 5d 20 3a | 3d 20 61 5b 30 5d 20 2a |t a[2] :|= a[0] *|
|000015a0| 20 78 69 6e 20 2d 20 61 | 5b 31 5d 20 2a 20 61 5b | xin - a|[1] * a[|
|000015b0| 32 5d 3b 0a 09 29 3b 0a | 0a 23 20 61 70 70 6c 79 |2];..);.|.# apply|
|000015c0| 20 66 69 6c 74 65 72 20 | 74 6f 20 61 20 72 61 6e | filter |to a ran|
|000015d0| 67 65 20 6f 66 20 73 61 | 6d 70 6c 65 73 2e 20 20 |ge of sa|mples. |
|000015e0| 6f 6e 65 20 70 61 73 73 | 20 69 73 20 6d 61 64 65 |one pass| is made|
|000015f0| 20 74 6f 20 73 74 61 62 | 69 6c 69 7a 65 20 66 69 | to stab|ilize fi|
|00001600| 6c 74 65 72 2c 0a 23 20 | 61 6e 64 20 74 68 65 20 |lter,.# |and the |
|00001610| 73 65 63 6f 6e 64 20 70 | 61 73 73 20 69 73 20 74 |second p|ass is t|
|00001620| 68 65 6e 20 75 73 65 64 | 0a 66 75 6e 63 20 61 70 |hen used|.func ap|
|00001630| 70 6c 79 74 6f 6e 65 28 | 64 61 74 61 3a 66 69 78 |plytone(|data:fix|
|00001640| 65 64 61 72 72 61 79 2c | 20 73 74 61 72 74 3a 69 |edarray,| start:i|
|00001650| 6e 74 2c 20 6c 65 6e 3a | 69 6e 74 2c 20 61 3a 64 |nt, len:|int, a:d|
|00001660| 6f 75 62 6c 65 61 72 72 | 61 79 2c 20 63 6f 75 6e |oublearr|ay, coun|
|00001670| 74 3a 69 6e 74 29 20 3a | 20 66 69 78 65 64 61 72 |t:int) :| fixedar|
|00001680| 72 61 79 0a 09 28 0a 09 | 09 76 61 72 20 69 3a 69 |ray..(..|.var i:i|
|00001690| 6e 74 20 3d 20 30 3b 0a | 09 09 77 68 69 6c 65 20 |nt = 0;.|..while |
|000016a0| 63 6f 75 6e 74 20 3e 20 | 30 20 64 6f 0a 09 09 09 |count > |0 do....|
|000016b0| 28 0a 09 09 09 09 73 65 | 74 20 69 20 3a 3d 20 30 |(.....se|t i := 0|
|000016c0| 3b 0a 09 09 09 09 77 68 | 69 6c 65 20 69 20 3c 20 |;.....wh|ile i < |
|000016d0| 6c 65 6e 20 64 6f 0a 09 | 09 09 09 09 28 0a 09 09 |len do..|....(...|
|000016e0| 09 09 09 09 74 6f 6e 65 | 28 64 61 74 61 5b 73 74 |....tone|(data[st|
|000016f0| 61 72 74 20 2b 20 69 5d | 2c 61 29 3b 0a 09 09 09 |art + i]|,a);....|
|00001700| 09 09 09 73 65 74 20 69 | 20 3a 3d 20 69 20 2b 20 |...set i| := i + |
|00001710| 31 3b 0a 09 09 09 09 09 | 29 3b 0a 09 09 09 09 73 |1;......|);.....s|
|00001720| 65 74 20 63 6f 75 6e 74 | 20 3a 3d 20 63 6f 75 6e |et count| := coun|
|00001730| 74 20 2d 20 31 3b 0a 09 | 09 09 29 3b 0a 09 09 73 |t - 1;..|..);...s|
|00001740| 65 74 20 69 20 3a 3d 20 | 30 3b 0a 09 09 77 68 69 |et i := |0;...whi|
|00001750| 6c 65 20 69 20 3c 20 6c | 65 6e 20 64 6f 0a 09 09 |le i < l|en do...|
|00001760| 09 28 0a 09 09 09 09 73 | 65 74 20 64 61 74 61 5b |.(.....s|et data[|
|00001770| 73 74 61 72 74 20 2b 20 | 69 5d 20 3a 3d 20 66 69 |start + |i] := fi|
|00001780| 78 65 64 20 74 6f 6e 65 | 28 64 61 74 61 5b 73 74 |xed tone|(data[st|
|00001790| 61 72 74 20 2b 20 69 5d | 2c 61 29 3b 0a 09 09 09 |art + i]|,a);....|
|000017a0| 09 73 65 74 20 69 20 3a | 3d 20 69 20 2b 20 31 3b |.set i :|= i + 1;|
|000017b0| 0a 09 09 09 29 3b 0a 09 | 09 64 61 74 61 0a 09 29 |....);..|.data..)|
|000017c0| 3b 0a 00 00 00 00 02 00 | 00 00 01 49 00 14 00 1f |;.......|...I....|
|000017d0| 02 65 01 11 00 00 00 52 | 65 73 6f 6e 61 6e 74 20 |.e.....R|esonant |
|000017e0| 53 61 77 74 6f 6f 74 68 | ae 03 00 00 23 20 66 72 |Sawtooth|....# fr|
|000017f0| 61 6d 65 73 20 3a 20 69 | 6e 74 65 67 65 72 3b 20 |ames : i|nteger; |
|00001800| 74 61 62 6c 65 73 20 3a | 20 69 6e 74 65 67 65 72 |tables :| integer|
|00001810| 3b 20 64 61 74 61 20 3a | 20 66 69 78 65 64 61 72 |; data :| fixedar|
|00001820| 72 61 79 0a 70 72 6f 74 | 6f 20 70 75 6c 73 65 77 |ray.prot|o pulsew|
|00001830| 69 64 74 68 61 72 72 61 | 79 28 64 61 74 61 3a 66 |idtharra|y(data:f|
|00001840| 69 78 65 64 61 72 72 61 | 79 2c 20 73 74 61 72 74 |ixedarra|y, start|
|00001850| 3a 69 6e 74 2c 20 6c 65 | 6e 3a 69 6e 74 2c 20 64 |:int, le|n:int, d|
|00001860| 75 74 79 3a 64 6f 75 62 | 6c 65 2c 20 74 72 61 6e |uty:doub|le, tran|
|00001870| 73 3a 64 6f 75 62 6c 65 | 29 20 3a 20 66 69 78 65 |s:double|) : fixe|
|00001880| 64 61 72 72 61 79 3b 0a | 70 72 6f 74 6f 20 73 61 |darray;.|proto sa|
|00001890| 77 74 6f 6f 74 68 61 72 | 72 61 79 28 64 61 74 61 |wtoothar|ray(data|
|000018a0| 3a 66 69 78 65 64 61 72 | 72 61 79 2c 20 73 74 61 |:fixedar|ray, sta|
|000018b0| 72 74 3a 69 6e 74 2c 20 | 6c 65 6e 3a 69 6e 74 29 |rt:int, |len:int)|
|000018c0| 3a 66 69 78 65 64 61 72 | 72 61 79 3b 0a 70 72 6f |:fixedar|ray;.pro|
|000018d0| 74 6f 20 72 73 6e 73 65 | 74 28 63 66 3a 64 6f 75 |to rsnse|t(cf:dou|
|000018e0| 62 6c 65 2c 20 62 77 3a | 64 6f 75 62 6c 65 2c 20 |ble, bw:|double, |
|000018f0| 73 63 6c 3a 69 6e 74 2c | 20 73 72 3a 64 6f 75 62 |scl:int,| sr:doub|
|00001900| 6c 65 29 20 3a 20 64 6f | 75 62 6c 65 61 72 72 61 |le) : do|ublearra|
|00001910| 79 3b 0a 70 72 6f 74 6f | 20 61 70 70 6c 79 72 65 |y;.proto| applyre|
|00001920| 73 6f 6e 28 64 61 74 61 | 3a 66 69 78 65 64 61 72 |son(data|:fixedar|
|00001930| 72 61 79 2c 20 73 74 61 | 72 74 3a 69 6e 74 2c 20 |ray, sta|rt:int, |
|00001940| 6c 65 6e 3a 69 6e 74 2c | 20 61 3a 64 6f 75 62 6c |len:int,| a:doubl|
|00001950| 65 61 72 72 61 79 2c 20 | 63 6f 75 6e 74 3a 69 6e |earray, |count:in|
|00001960| 74 29 20 3a 20 66 69 78 | 65 64 61 72 72 61 79 3b |t) : fix|edarray;|
|00001970| 0a 70 72 6f 74 6f 20 6e | 6f 72 6d 61 6c 69 7a 65 |.proto n|ormalize|
|00001980| 73 65 67 6d 65 6e 74 28 | 64 61 74 61 3a 66 69 78 |segment(|data:fix|
|00001990| 65 64 61 72 72 61 79 2c | 73 74 61 72 74 3a 69 6e |edarray,|start:in|
|000019a0| 74 2c 6c 65 6e 3a 69 6e | 74 29 3a 66 69 78 65 64 |t,len:in|t):fixed|
|000019b0| 61 72 72 61 79 3b 0a 70 | 72 6f 74 6f 20 6d 61 78 |array;.p|roto max|
|000019c0| 69 6d 69 7a 65 73 65 67 | 6d 65 6e 74 28 64 61 74 |imizeseg|ment(dat|
|000019d0| 61 3a 66 69 78 65 64 61 | 72 72 61 79 2c 73 74 61 |a:fixeda|rray,sta|
|000019e0| 72 74 3a 69 6e 74 2c 6c | 65 6e 3a 69 6e 74 29 3a |rt:int,l|en:int):|
|000019f0| 66 69 78 65 64 61 72 72 | 61 79 3b 0a 76 61 72 20 |fixedarr|ay;.var |
|00001a00| 69 3a 69 6e 74 20 3d 20 | 30 3b 0a 77 68 69 6c 65 |i:int = |0;.while|
|00001a10| 20 69 20 3c 20 74 61 62 | 6c 65 73 20 64 6f 0a 09 | i < tab|les do..|
|00001a20| 28 0a 09 09 73 61 77 74 | 6f 6f 74 68 61 72 72 61 |(...sawt|ootharra|
|00001a30| 79 28 64 61 74 61 2c 69 | 20 2a 20 66 72 61 6d 65 |y(data,i| * frame|
|00001a40| 73 2c 66 72 61 6d 65 73 | 29 3b 0a 09 09 76 61 72 |s,frames|);...var|
|00001a50| 20 61 3a 64 6f 75 62 6c | 65 61 72 72 61 79 20 3d | a:doubl|earray =|
|00001a60| 20 72 73 6e 73 65 74 28 | 31 30 30 20 2b 20 69 20 | rsnset(|100 + i |
|00001a70| 2f 20 74 61 62 6c 65 73 | 20 2a 20 38 30 30 30 2c |/ tables| * 8000,|
|00001a80| 0a 09 09 09 35 30 20 2b | 20 69 20 2f 20 74 61 62 |....50 +| i / tab|
|00001a90| 6c 65 73 20 2a 20 33 30 | 30 2c 32 2c 32 36 31 2e |les * 30|0,2,261.|
|00001aa0| 36 20 2a 20 66 72 61 6d | 65 73 29 3b 0a 09 09 61 |6 * fram|es);...a|
|00001ab0| 70 70 6c 79 72 65 73 6f | 6e 28 64 61 74 61 2c 69 |pplyreso|n(data,i|
|00001ac0| 20 2a 20 66 72 61 6d 65 | 73 2c 66 72 61 6d 65 73 | * frame|s,frames|
|00001ad0| 2c 61 2c 34 29 3b 0a 09 | 09 23 6e 6f 72 6d 61 6c |,a,4);..|.#normal|
|00001ae0| 69 7a 65 73 65 67 6d 65 | 6e 74 28 64 61 74 61 2c |izesegme|nt(data,|
|00001af0| 69 20 2a 20 66 72 61 6d | 65 73 2c 66 72 61 6d 65 |i * fram|es,frame|
|00001b00| 73 29 3b 0a 09 09 6d 61 | 78 69 6d 69 7a 65 73 65 |s);...ma|ximizese|
|00001b10| 67 6d 65 6e 74 28 64 61 | 74 61 2c 69 20 2a 20 66 |gment(da|ta,i * f|
|00001b20| 72 61 6d 65 73 2c 66 72 | 61 6d 65 73 29 3b 0a 09 |rames,fr|ames);..|
|00001b30| 09 73 65 74 20 69 20 3a | 3d 20 69 20 2b 20 31 3b |.set i :|= i + 1;|
|00001b40| 0a 09 29 3b 0a 23 6e 6f | 72 6d 61 6c 69 7a 65 73 |..);.#no|rmalizes|
|00001b50| 65 67 6d 65 6e 74 28 64 | 61 74 61 2c 30 2c 74 61 |egment(d|ata,0,ta|
|00001b60| 62 6c 65 73 20 2a 20 66 | 72 61 6d 65 73 29 3b 0a |bles * f|rames);.|
|00001b70| 23 6d 61 78 69 6d 69 7a | 65 73 65 67 6d 65 6e 74 |#maximiz|esegment|
|00001b80| 28 64 61 74 61 2c 30 2c | 74 61 62 6c 65 73 20 2a |(data,0,|tables *|
|00001b90| 20 66 72 61 6d 65 73 29 | 3b 0a 80 00 00 00 40 00 | frames)|;.....@.|
|00001ba0| 00 00 10 01 49 00 14 00 | 1f 02 65 01 0f 00 00 00 |....I...|..e.....|
|00001bb0| 52 65 73 6f 6e 61 6e 74 | 20 53 71 75 61 72 65 b8 |Resonant| Square.|
|00001bc0| 03 00 00 23 20 66 72 61 | 6d 65 73 20 3a 20 69 6e |...# fra|mes : in|
|00001bd0| 74 65 67 65 72 3b 20 74 | 61 62 6c 65 73 20 3a 20 |teger; t|ables : |
|00001be0| 69 6e 74 65 67 65 72 3b | 20 64 61 74 61 20 3a 20 |integer;| data : |
|00001bf0| 66 69 78 65 64 61 72 72 | 61 79 0a 70 72 6f 74 6f |fixedarr|ay.proto|
|00001c00| 20 70 75 6c 73 65 77 69 | 64 74 68 61 72 72 61 79 | pulsewi|dtharray|
|00001c10| 28 64 61 74 61 3a 66 69 | 78 65 64 61 72 72 61 79 |(data:fi|xedarray|
|00001c20| 2c 20 73 74 61 72 74 3a | 69 6e 74 2c 20 6c 65 6e |, start:|int, len|
|00001c30| 3a 69 6e 74 2c 20 64 75 | 74 79 3a 64 6f 75 62 6c |:int, du|ty:doubl|
|00001c40| 65 2c 20 74 72 61 6e 73 | 3a 64 6f 75 62 6c 65 29 |e, trans|:double)|
|00001c50| 20 3a 20 66 69 78 65 64 | 61 72 72 61 79 3b 0a 70 | : fixed|array;.p|
|00001c60| 72 6f 74 6f 20 73 61 77 | 74 6f 6f 74 68 61 72 72 |roto saw|tootharr|
|00001c70| 61 79 28 64 61 74 61 3a | 66 69 78 65 64 61 72 72 |ay(data:|fixedarr|
|00001c80| 61 79 2c 20 73 74 61 72 | 74 3a 69 6e 74 2c 20 6c |ay, star|t:int, l|
|00001c90| 65 6e 3a 69 6e 74 29 3a | 66 69 78 65 64 61 72 72 |en:int):|fixedarr|
|00001ca0| 61 79 3b 0a 70 72 6f 74 | 6f 20 72 73 6e 73 65 74 |ay;.prot|o rsnset|
|00001cb0| 28 63 66 3a 64 6f 75 62 | 6c 65 2c 20 62 77 3a 64 |(cf:doub|le, bw:d|
|00001cc0| 6f 75 62 6c 65 2c 20 73 | 63 6c 3a 69 6e 74 2c 20 |ouble, s|cl:int, |
|00001cd0| 73 72 3a 64 6f 75 62 6c | 65 29 20 3a 20 64 6f 75 |sr:doubl|e) : dou|
|00001ce0| 62 6c 65 61 72 72 61 79 | 3b 0a 70 72 6f 74 6f 20 |blearray|;.proto |
|00001cf0| 61 70 70 6c 79 72 65 73 | 6f 6e 28 64 61 74 61 3a |applyres|on(data:|
|00001d00| 66 69 78 65 64 61 72 72 | 61 79 2c 20 73 74 61 72 |fixedarr|ay, star|
|00001d10| 74 3a 69 6e 74 2c 20 6c | 65 6e 3a 69 6e 74 2c 20 |t:int, l|en:int, |
|00001d20| 61 3a 64 6f 75 62 6c 65 | 61 72 72 61 79 2c 20 63 |a:double|array, c|
|00001d30| 6f 75 6e 74 3a 69 6e 74 | 29 20 3a 20 66 69 78 65 |ount:int|) : fixe|
|00001d40| 64 61 72 72 61 79 3b 0a | 70 72 6f 74 6f 20 6e 6f |darray;.|proto no|
|00001d50| 72 6d 61 6c 69 7a 65 73 | 65 67 6d 65 6e 74 28 64 |rmalizes|egment(d|
|00001d60| 61 74 61 3a 66 69 78 65 | 64 61 72 72 61 79 2c 73 |ata:fixe|darray,s|
|00001d70| 74 61 72 74 3a 69 6e 74 | 2c 6c 65 6e 3a 69 6e 74 |tart:int|,len:int|
|00001d80| 29 3a 66 69 78 65 64 61 | 72 72 61 79 3b 0a 70 72 |):fixeda|rray;.pr|
|00001d90| 6f 74 6f 20 6d 61 78 69 | 6d 69 7a 65 73 65 67 6d |oto maxi|mizesegm|
|00001da0| 65 6e 74 28 64 61 74 61 | 3a 66 69 78 65 64 61 72 |ent(data|:fixedar|
|00001db0| 72 61 79 2c 73 74 61 72 | 74 3a 69 6e 74 2c 6c 65 |ray,star|t:int,le|
|00001dc0| 6e 3a 69 6e 74 29 3a 66 | 69 78 65 64 61 72 72 61 |n:int):f|ixedarra|
|00001dd0| 79 3b 0a 76 61 72 20 69 | 3a 69 6e 74 20 3d 20 30 |y;.var i|:int = 0|
|00001de0| 3b 0a 77 68 69 6c 65 20 | 69 20 3c 20 74 61 62 6c |;.while |i < tabl|
|00001df0| 65 73 20 64 6f 0a 09 28 | 0a 09 09 70 75 6c 73 65 |es do..(|...pulse|
|00001e00| 77 69 64 74 68 61 72 72 | 61 79 28 64 61 74 61 2c |widtharr|ay(data,|
|00001e10| 69 20 2a 20 66 72 61 6d | 65 73 2c 66 72 61 6d 65 |i * fram|es,frame|
|00001e20| 73 2c 2e 35 2c 2e 30 35 | 29 3b 0a 09 09 76 61 72 |s,.5,.05|);...var|
|00001e30| 20 61 3a 64 6f 75 62 6c | 65 61 72 72 61 79 20 3d | a:doubl|earray =|
|00001e40| 20 72 73 6e 73 65 74 28 | 31 30 30 20 2b 20 69 20 | rsnset(|100 + i |
|00001e50| 2f 20 74 61 62 6c 65 73 | 20 2a 20 38 30 30 30 2c |/ tables| * 8000,|
|00001e60| 0a 09 09 09 31 35 30 20 | 2b 20 69 20 2f 20 74 61 |....150 |+ i / ta|
|00001e70| 62 6c 65 73 20 2a 20 34 | 30 30 2c 32 2c 32 36 31 |bles * 4|00,2,261|
|00001e80| 2e 36 20 2a 20 66 72 61 | 6d 65 73 29 3b 0a 09 09 |.6 * fra|mes);...|
|00001e90| 61 70 70 6c 79 72 65 73 | 6f 6e 28 64 61 74 61 2c |applyres|on(data,|
|00001ea0| 69 20 2a 20 66 72 61 6d | 65 73 2c 66 72 61 6d 65 |i * fram|es,frame|
|00001eb0| 73 2c 61 2c 34 29 3b 0a | 09 09 23 6e 6f 72 6d 61 |s,a,4);.|..#norma|
|00001ec0| 6c 69 7a 65 73 65 67 6d | 65 6e 74 28 64 61 74 61 |lizesegm|ent(data|
|00001ed0| 2c 69 20 2a 20 66 72 61 | 6d 65 73 2c 66 72 61 6d |,i * fra|mes,fram|
|00001ee0| 65 73 29 3b 0a 09 09 6d | 61 78 69 6d 69 7a 65 73 |es);...m|aximizes|
|00001ef0| 65 67 6d 65 6e 74 28 64 | 61 74 61 2c 69 20 2a 20 |egment(d|ata,i * |
|00001f00| 66 72 61 6d 65 73 2c 66 | 72 61 6d 65 73 29 3b 0a |frames,f|rames);.|
|00001f10| 09 09 73 65 74 20 69 20 | 3a 3d 20 69 20 2b 20 31 |..set i |:= i + 1|
|00001f20| 3b 0a 09 29 3b 0a 23 6e | 6f 72 6d 61 6c 69 7a 65 |;..);.#n|ormalize|
|00001f30| 73 65 67 6d 65 6e 74 28 | 64 61 74 61 2c 30 2c 74 |segment(|data,0,t|
|00001f40| 61 62 6c 65 73 20 2a 20 | 66 72 61 6d 65 73 29 3b |ables * |frames);|
|00001f50| 0a 23 6d 61 78 69 6d 69 | 7a 65 73 65 67 6d 65 6e |.#maximi|zesegmen|
|00001f60| 74 28 64 61 74 61 2c 30 | 2c 74 61 62 6c 65 73 20 |t(data,0|,tables |
|00001f70| 2a 20 66 72 61 6d 65 73 | 29 3b 0a 80 00 00 00 40 |* frames|);.....@|
|00001f80| 00 00 00 10 02 00 00 00 | 01 16 00 27 00 ea 01 40 |........|...'...@|
|00001f90| 01 11 00 00 00 52 65 73 | 6f 6e 61 6e 74 20 53 61 |.....Res|onant Sa|
|00001fa0| 77 74 6f 6f 74 68 52 01 | 00 00 69 6e 73 74 72 75 |wtoothR.|..instru|
|00001fb0| 6d 65 6e 74 0a 09 28 0a | 09 09 6c 6f 75 64 6e 65 |ment..(.|..loudne|
|00001fc0| 73 73 20 31 3b 0a 09 09 | 6f 73 63 69 6c 6c 61 74 |ss 1;...|oscillat|
|00001fd0| 6f 72 20 78 0a 09 09 09 | 28 0a 09 09 09 09 73 61 |or x....|(.....sa|
|00001fe0| 6d 70 6c 65 6c 69 73 74 | 20 28 22 52 65 73 6f 6e |mplelist| ("Reson|
|00001ff0| 61 6e 74 20 53 61 77 74 | 6f 6f 74 68 22 20 31 30 |ant Sawt|ooth" 10|
|00002000| 30 30 30 3b 29 3b 0a 09 | 09 09 09 74 79 70 65 20 |000;);..|...type |
|00002010| 77 61 76 65 74 61 62 6c | 65 3b 0a 09 09 09 09 6c |wavetabl|e;.....l|
|00002020| 6f 75 64 6e 65 73 73 20 | 31 3b 0a 09 09 09 09 6c |oudness |1;.....l|
|00002030| 6f 75 64 6e 65 73 73 65 | 6e 76 65 6c 6f 70 65 0a |oudnesse|nvelope.|
|00002040| 09 09 09 09 09 28 0a 09 | 09 09 09 09 09 70 6f 69 |.....(..|.....poi|
|00002050| 6e 74 73 0a 09 09 09 09 | 09 09 09 28 0a 09 09 09 |nts.....|...(....|
|00002060| 09 09 09 09 09 64 65 6c | 61 79 20 30 20 6c 65 76 |.....del|ay 0 lev|
|00002070| 65 6c 20 31 20 73 75 73 | 74 61 69 6e 70 6f 69 6e |el 1 sus|tainpoin|
|00002080| 74 20 31 3b 0a 09 09 09 | 09 09 09 09 29 3b 0a 09 |t 1;....|....);..|
|00002090| 09 09 09 09 29 3b 0a 09 | 09 09 09 69 6e 64 65 78 |....);..|...index|
|000020a0| 65 6e 76 65 6c 6f 70 65 | 0a 09 09 09 09 09 28 0a |envelope|......(.|
|000020b0| 09 09 09 09 09 09 70 6f | 69 6e 74 73 0a 09 09 09 |......po|ints....|
|000020c0| 09 09 09 09 28 0a 09 09 | 09 09 09 09 09 09 64 65 |....(...|......de|
|000020d0| 6c 61 79 20 36 2e 35 20 | 6c 65 76 65 6c 20 31 3b |lay 6.5 |level 1;|
|000020e0| 0a 09 09 09 09 09 09 09 | 29 3b 0a 09 09 09 09 09 |........|);......|
|000020f0| 29 3b 0a 09 09 09 29 3b | 0a 09 29 0a 01 16 00 27 |);....);|..)....'|
|00002100| 00 ea 01 40 01 0f 00 00 | 00 52 65 73 6f 6e 61 6e |...@....|.Resonan|
|00002110| 74 20 53 71 75 61 72 65 | 50 01 00 00 69 6e 73 74 |t Square|P...inst|
|00002120| 72 75 6d 65 6e 74 0a 09 | 28 0a 09 09 6c 6f 75 64 |rument..|(...loud|
|00002130| 6e 65 73 73 20 31 3b 0a | 09 09 6f 73 63 69 6c 6c |ness 1;.|..oscill|
|00002140| 61 74 6f 72 20 78 0a 09 | 09 09 28 0a 09 09 09 09 |ator x..|..(.....|
|00002150| 73 61 6d 70 6c 65 6c 69 | 73 74 20 28 22 52 65 73 |sampleli|st ("Res|
|00002160| 6f 6e 61 6e 74 20 53 71 | 75 61 72 65 22 20 31 30 |onant Sq|uare" 10|
|00002170| 30 30 30 3b 29 3b 0a 09 | 09 09 09 74 79 70 65 20 |000;);..|...type |
|00002180| 77 61 76 65 74 61 62 6c | 65 3b 0a 09 09 09 09 6c |wavetabl|e;.....l|
|00002190| 6f 75 64 6e 65 73 73 20 | 31 3b 0a 09 09 09 09 6c |oudness |1;.....l|
|000021a0| 6f 75 64 6e 65 73 73 65 | 6e 76 65 6c 6f 70 65 0a |oudnesse|nvelope.|
|000021b0| 09 09 09 09 09 28 0a 09 | 09 09 09 09 09 70 6f 69 |.....(..|.....poi|
|000021c0| 6e 74 73 0a 09 09 09 09 | 09 09 09 28 0a 09 09 09 |nts.....|...(....|
|000021d0| 09 09 09 09 09 64 65 6c | 61 79 20 30 20 6c 65 76 |.....del|ay 0 lev|
|000021e0| 65 6c 20 31 20 73 75 73 | 74 61 69 6e 70 6f 69 6e |el 1 sus|tainpoin|
|000021f0| 74 20 31 3b 0a 09 09 09 | 09 09 09 09 29 3b 0a 09 |t 1;....|....);..|
|00002200| 09 09 09 09 29 3b 0a 09 | 09 09 09 69 6e 64 65 78 |....);..|...index|
|00002210| 65 6e 76 65 6c 6f 70 65 | 0a 09 09 09 09 09 28 0a |envelope|......(.|
|00002220| 09 09 09 09 09 09 70 6f | 69 6e 74 73 0a 09 09 09 |......po|ints....|
|00002230| 09 09 09 09 28 0a 09 09 | 09 09 09 09 09 09 64 65 |....(...|......de|
|00002240| 6c 61 79 20 36 2e 35 20 | 6c 65 76 65 6c 20 31 3b |lay 6.5 |level 1;|
|00002250| 0a 09 09 09 09 09 09 09 | 29 3b 0a 09 09 09 09 09 |........|);......|
|00002260| 29 3b 0a 09 09 09 29 3b | 0a 09 29 0a 00 00 00 00 |);....);|..).....|
|00002270| 00 00 00 00 | |.... | |
+--------+-------------------------+-------------------------+--------+--------+